Various embodiments of the present invention relate to the field of packet-based networks. In particular, the embodiments relate to methods, systems, and computer program products for handling sessions in a packet-based network.
With the increasing use of high-performance programmable processors in media gateways, Voice-over-Internet-Protocol (VoIP) systems, Voice-over Packet Network (VoPN) systems, and packet-based networks have adopted a modular approach. These programmable processors perform functions such as voice processing, event handling, and packetization. VoIP defines a way of handling voice calls and events over a packet-based network. A VoIP transmitter transmits these voice calls or events as packets over the packet-based network. Further, the packets are transmitted at a constant rate. The packets follow different paths on the packet-based network, and therefore, are subjected to different delays and might not reach a VoIP receiver at a constant rate. The delay in arrival of the packets to the VoIP receiver is referred to as a jitter delay. A jitter buffer in the VoIP receiver stores these packets taking into account the jitter delay so that the packets are played out at a constant rate.
Conventional VoIP systems, working in accordance with the Request for Comments (RFC) 2833 standard (RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals, May 2000), transmit packets that represent a Dual-tone Multi-frequency (DTMF) event with the same timestamp. Further, the duration of these packets is incremented as long as the DTMF event continues. Examples of DTMF events include pressing digits 0-9, *, #, ring tones, busy tones, and the like. The last packet of the DTMF event has an end-bit value as one, to communicate to the VoIP receiver that the DTMF event has ended. The VoIP transmitter detects the end of the DTMF event by executing a tone-detection algorithm, which takes in the range of 20-30 milliseconds (ms) to detect the end of an event. During this period, the transmitter does not transmit any packet. However, if the jitter buffer holds the packets for a period of time that is less than 20-30 ms, the VoIP receiver may not receive the packet with the end-bit value as one. In this case, the VoIP receiver may consider that the packet with the end-bit value as one is lost, and extend the DTMF event beyond its actual duration. Moreover, if a new DTMF event starts during this period of 20-30 ms, the two DTMF events may get merged, and if the two DTMF events are the same, then the play out will look as if a single DTMF event has been transmitted.